package com.dhcc.DRGsHosp.facade ;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JasperPrint;



/**
 * 
 * @ClassName: JasperReportFacade  
 * @Description ：    
 * @Date: 2017年9月2日 上午11:45:26  
 * @Author ChenHanlin 
 * @Version 2.5.0 DHC-DRGs
 */
public interface JasperReportFacade {
	 
	/**
	 *  
	 *  getJasperResult.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param sql
	 *  @param params
	 *  @return 
	 *  @Date:2017年9月4日下午7:36:22
	 */
	List<Map<String, Object>> getJasperResult(String sql, Map<String, Object> params); 
	
	/**
	 *  获取科室组 科室 病区
	 *  getDepTree.  
	 *  @param chkStyle 选择框类型 (radio checkbox)
	 *  @param layer 层级  (科室 ,病区)
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param sql
	 *  @param params
	 *  @return 
	 *  @Date:2017年11月6日下午5:32:53
	 */
	List<Map<String, Object>> queryDepTree(String chkStyle, String layer); 
	/**
	 *  
	 *  findJasperReport.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param reportId
	 *  @return 
	 *  @Date:2018年1月31日上午9:11:05
	 */
	List<Map<String, Object>> findJasperReport(String reportId) ;
	/**
	 *  处理报表查询参数
	 *  processQueryParam.  
	 *  @param reportList 
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param params 查询参数
	 *  @param reportType 导出文件类型
	 *  @param roleName
	 *  @return 
	 *  @Date:2018年1月31日下午2:25:43
	 */
	void processQueryParam(List<Map<String, Object>> reportList, String params,String reportType,String roleName) ;
	
	/**
	 *  填充报表模板
	 *  getJasperPrint.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param reportList 报表列表
	 *  @param params 查询参数
	 *  @return 
	 * @throws IOException 
	 *  @Date:2018年1月31日下午2:26:03
	 */
	ArrayList<JasperPrint> getJasperPrint(final List<Map<String, Object>> reportList) throws IOException ;
}
